package ar.uba.fi.algo3.algoTank.Objetos;



public abstract class ObjetoMovil extends Objeto {

	private static final long serialVersionUID = 1L;
	
	protected Movimiento movimiento;
	protected Ubicacion proximaUbicacion;

	
	public ObjetoMovil(){
		super();
		movimiento = new Movimiento();
	}
	
	public ObjetoMovil(Posicion posicion, Territorio territorio) {
		super(posicion,territorio);		
		movimiento = new Movimiento();
	}
		
	public boolean interactuableConProyectil(){
		return true;
	}
	
	public void setMovimiento(Movimiento movimiento) {
		this.movimiento = movimiento;			
	}
	
	public Movimiento getMovimiento(){
		return this.movimiento;
	}
	
	public Ubicacion getProximaUbicacion() {
		return proximaUbicacion;
	}
	
	public void setProximaUbicacion(Ubicacion proximaUbicacion) {
		this.proximaUbicacion = proximaUbicacion;
	}
	
	
	
	public void calcularProximaUbicacion(){
		//devuelve la proxima ubicacion del objeto considerando su movimiento actual
		Posicion posicion = new Posicion();
		posicion = movimiento.calcularPosicion(deltaTiempo,ubicacion.getPosicion());
		Ubicacion ubi = new Ubicacion(ubicacion.getAncho(),ubicacion.getAlto());
		ubi.setPosicion(posicion);
		this.setProximaUbicacion(ubi);	
	}
	
	
}
